group { name: "e/widgets/entry/scrollframe";
   parts {
      part { name: "bg"; type: RECT;
         description { state: "default" 0.0;
            color_class: "/bg/normal/entry";
         }
      }
      part { name: "clipper"; type: RECT;
         description { state: "default" 0.0;
            rel.to: "bg";
         }
      }
      part { name: "e.swallow.content"; type: SWALLOW;
         scale: 1;
         clip_to: "clipper";
         description { state: "default" 0.0;
            rel1.offset: 2 2;
            rel2.offset: -3 -3;
            offscale;
         }
      }
   }
}

group { name: "e/widgets/entry/text";
      styles {
         style { name: "entry_textblock_style";
            base: "font="FN" font_size=10 color=cc:/fg/normal/entry text_class=entry left_margin=2 right_margin=2";
         }
         style { name: "entry_textblock_disabled_style";
            base: "font="FN" font_size=10 color=cc:/fg/disabled/entry text_class=entry left_margin=2 right_margin=2";
         }
      }
   parts {
      part { name: "e.text.text"; type: TEXTBLOCK;
         scale: 1;
         entry_mode: EDITABLE;
         select_mode: DEFAULT;
         cursor_mode: BEFORE;
         multiline: 0;
         source: "e/widgets/entry/selection"; // selection under
         source4: "e/widgets/entry/cursor"; // cursorover
         description { state: "default" 0.0;
            align: 0.0 0.5;
            text {
               style: "entry_textblock_style";
               min: 1 1;
               ellipsis: -1;
               align: 0.0 0.5;
            }
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            text.style: "entry_textblock_disabled_style";
         }
      }
   }
   programs {
      program { signal: "load"; source: "";
         action: FOCUS_SET;
         target: "e.text.text";
      }
      program { signal: "e,state,disabled"; source: "e";
         action: STATE_SET "disabled" 0.0;
         target: "e.text.text";
      }
      program { signal: "e,state,enabled"; source: "e";
         action: STATE_SET "default" 0.0;
         target: "e.text.text";
      }
//      program {
//         signal: "e,state,noedit"; source: "e";
//      }
//      program {
//         signal: "e,state,edit"; source: "e";
//      }
   }
}

group { name: "e/widgets/entry/password";
   inherit: "e/widgets/entry/text";
   parts {
      part { name: "e.text.text";
         entry_mode: PASSWORD;
         description { state: "default" 0.0;
            text.repch: "*";
         }
      }
   }
}

group { name: "e/widgets/entry/cursor";
   min: 1 0;
   parts {
      part { name: "cursor"; type: RECT; mouse_events: 0;
         scale: 1;
         description { state: "default" 0.0;
            min: 1 10;
            color_class: "/fg/normal/entry/cursor";
            visible: 0;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
   }
   programs {
      program {
         signal: "e,action,show,cursor"; source: "e";
         action: ACTION_STOP;
         target: "cursor_show";
         target: "cursor_hide";
         target: "cursor_show_timer";
         target: "cursor_hide_timer";
         after: "cursor_show";
      }
      program {
         name: "on_cursor_hide";
         signal: "e,action,hide,cursor";
         source: "e";
         action: ACTION_STOP;
         target: "cursor_show";
         target: "cursor_hide";
         target: "cursor_show_timer";
         target: "cursor_hide_timer";
         after: "cursor_hide_stop";
      }
      program {
         name: "cursor_hide_stop";
         action: STATE_SET "default" 0.0;
         target: "cursor";
      }
      program { name: "cursor_show";
         action: STATE_SET "visible" 0.0;
         target: "cursor";
         after: "cursor_show_timer";
      }
      program { name: "cursor_hide";
         action: STATE_SET "default" 0.0;
         target: "cursor";
         after: "cursor_hide_timer";
      }
      program { name: "cursor_show_timer";
         in: 0.5 0.0;
         after: "cursor_hide";
      }
      program { name: "cursor_hide_timer";
         in: 0.5 0.0;
         after: "cursor_show";
      }
   }
}

group { name: "e/widgets/entry/selection";
//   data.item: "on_foreground" "1";
   parts {
      part { name: "selection"; type: RECT; mouse_events: 0;
         description { state: "default" 0.0;
            color_class: "/bg/normal/entry/selection";
         }
      }
   }
}
